#ifndef __CSP_GPIO_H__
#define __CSP_GPIO_H__

//#include "AC33Mx128.h"

typedef struct {

	CSP_REGISTER_T		PnODR;				// offset = 0x0000, R/W
	CSP_REGISTER_T		PnIDR;				// offset = 0x0004, RO
	CSP_REGISTER_T		PnBSR;				// offset = 0x0008, WO
	CSP_REGISTER_T		PnBCR;				// offset = 0x000C, WO

} CSP_GPIO_T;



//==========================================================================
// 	PnODR
//		
//
//==========================================================================


//==========================================================================
// 	PnIDR
//		
//
//==========================================================================

//==========================================================================
// 	PnBSR
//		
//
//==========================================================================





//==========================================================================
// 
//		M A C R O S
//
//==========================================================================
#define CSP_GPIO_GET_PnODR(gpio)				((gpio)->PnODR)
#define CSP_GPIO_SET_PnODR(gpio, val)			((gpio)->PnODR = (val))
//-----------------------------------------------------------------------------------------
#define CSP_GPIO_GET_PnIDR(gpio)				((gpio)->PnIDR)
//-----------------------------------------------------------------------------------------
#define CSP_GPIO_SET_PnBSR(gpio, val)			((gpio)->PnBSR = (val))
//-----------------------------------------------------------------------------------------
#define CSP_GPIO_SET_PnBCR(gpio, val)			((gpio)->PnBCR = (val))
//-----------------------------------------------------------------------------------------


// GPIO
extern CSP_GPIO_T			* const			GPIO_A; 
extern CSP_GPIO_T			* const			GPIO_B; 
extern CSP_GPIO_T			* const			GPIO_C; 
extern CSP_GPIO_T			* const			GPIO_D; 


//==========================================================================
// 
//		F U N C T I O N    D E C L A R A T I O N S 
//
//==========================================================================
void CSP_GPIO_OutputHigh (CSP_GPIO_T * const gpio, UINT32 pin_no); 
void CSP_GPIO_OutputLow (CSP_GPIO_T * const gpio, UINT32 pin_no); 



#endif 

